Các cải tiến hiệu năng thực thi của ngôn ngữ cốt lõi C++11

C++11 đưa ra nhiều cải tiến nhằm nâng cao hiệu năng thực thi về việc sử dụng bộ nhớ hay về tốc độ thực thi của chương trình.

Tham chiếu R - value và cấu trúc động

Trong C++03 và các phiên bản trước, biến tạm? (được gọi là R - value) thường nằm bên phải của phép gán, được xây dựng chắc chắn như không thể thay đổi - như trong C, được xem là giống như từ const T và các "type". Tuy nhiên trong một số trường hợp, các biến tạm có thể được thay đổi, động thái này thậm chí được coi là một kẽ hở hữu ích. C++11 cho biết thêm một kiểu tham chiếu không dùng hằng mới gọi là "tham chiếu R - value", được xác định bởi T&&. Điều này có nghĩa là biến tạm vẫn được phép sửa đổi sau khi khởi tạo, với mục đích cho phép một "ngôn ngữ khả chuyển".

Một vấn đề hiệu suất kình niên với C++03 là bản sao chìm tốn nhiều bộ nhớ và không cần thiết có thể xuất hiện khi một đối tượng được truyền theo tham trị. Để minh họa cho vấn đề này, ta xét một biến cục bộ std::vector<T>, bao hàm một mảng kiểu C với kích thước xác định. Nếu một vector<T> dùng làm biến tạm được tạo ra hay là giá trị trả về từ một hàm, nó có thể được lưu trữ chỉ bằng cách tạo ra một vector<T> mới và sao chép tất cả dữ liệu từ R - value vào nó (để đơn giản, ta bỏ qua việc tối ưu hóa giá trị trả về)